마이크로서비스의 특징
- 서비스를 사용한 컴포넌트화
- 독립된 컨테이너 상의 서비스는 개별적 교체 가능
- 작은 단위의 확장성 실현
- 약한 결합을 통해 단위 배포
- 비즈니스 기능을 기준으로 한 팀 편성
- 프로젝트가 아닌 제품으로 파악해서 개발 및 운영
- 애자일과 궁합이 좋은 방식
- 비즈니스 팀은 자신의 제품을 책임지고 운영, 개발, 보수
- 지능적인 엔드포인트와 단순한 파이프
- 비중앙집권적인 언어와 툴 선택
- 기존에는 모든 것을 언어와 툴을 표준화시킴
- 마이크로서비스에서는 각 팀이 각자의 방침을 정함
- 비중앙집권적인 데이터 관리
- 위와 동일
- 인프라의 자동화
- 자동화를 통해 운영 속도를 높이고 실수를 줄임
- 테스트의 자동화를 통해 품질 향상
- 장애와 오류를 전제로 한 설계
- 그럼에도 오류가 날 수 있기에 이를 전제함
- 서버 및 네트워크 메트릭 감시를 통해 장애 감지 및 대응
- 선진적인 설계